package com.battle.service.service.in;

import jakarta.servlet.http.HttpServletResponse;
import nirvana.core.domains.vo.PageResult;
import com.battle.pojo.param.trainingAchievementDetails.*;
import com.battle.pojo.vo.trainingAchievementDetails.*;

import java.io.IOException;
import java.util.List;


/**
 * 【描 述】：个人培训成绩服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface TrainingAchievementDetailsService {

    /**
     * 创建个人培训成绩
     *
     * @param param
     */
    void createTrainingAchievementDetails(CreateTrainingAchievementDetailsParam param);

    /**
     * 修改个人培训成绩
     *
     * @param param
     */
    void editTrainingAchievementDetails(EditTrainingAchievementDetailsParam param);

    /**
     * 移除个人培训成绩
     *
     * @param id
     */
    void removeTrainingAchievementDetails(Long id);

    /**
     * 启动/禁用个人培训成绩
     *
     * @param id
     */
    void enabledTrainingAchievementDetails(Long id);

    /**
     * 获取个人培训成绩详情
     *
     * @param id
     * @return
     */
    GetTrainingAchievementDetailsVo getTrainingAchievementDetails(Long id);

    /**
     * 获取个人培训成绩列表
     *
     * @param param
     * @return
     */
    PageResult<GetTrainingAchievementDetailsListVo> getTrainingAchievementDetailsList(GetTrainingAchievementDetailsListParam param);

    /**
     * 导出个人培训成绩
     * @param param
     * @param response
     * @throws IOException
     */
    void export(GetTrainingAchievementDetailsListParam param, HttpServletResponse response) throws IOException;

    /**
     * 获取个人培训成绩下拉列表
     *
     * @param param
     * @return
     */
    List<GetTrainingAchievementDetailsDownListVo> getTrainingAchievementDetailsDownList(GetTrainingAchievementDetailsDownListParam param);


}